<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
</head>
<body>
	
</body>
	<script>
		// function getSum(){
		// 	var num = 0;
		// 	for(var i = 0; i <= 100; i++){
		// 		num += i;
		// 	}
		// }
		// console.log(getSum(1,100));
		// function 函数名（）{		// 代码段     函数体		// }
		// 1、声明函数
		// 2、调用函数       函数不调用代码不执行
		// 函数名 （）
		// getnum（）		// 调用：函数名（）
		// 形参  和 实参
		// function getSum(a,b){
		// 	var num = 0;
		// 	for(var i = a; i <= b; i++){
		// 		num += i;
		// 	}
		// 	// console.log(num);
		// 	return num;
		// }
		// getSum(1,100);
		// getSum(2,101);
		// getSum(3,102);
		// console.log(getSum(1,100));
		// console.log(getSum(2,101));
		// console.log(getSum(3,102));
		// 形参：形式上的参数，在函数名后边的括号里，用来接收实参传过来的数据
		// 实参：实际的参数，往里传的数据。
		
		
		
	
		// function sayHi(num1,num2){
			// console.log("nihao");
			// console.log(num1);
			// console.log(num1+num2);
		// 	return num1;
		// }
		// var a = sayHi(11);
		// // console.log(sayHi(11));
		// console.log(a);
		
		// return 返回值
		// function getNum(num1,num2){
		// 	if(num1 > num2){
		// 		return num1
		// 	}else{
		// 		return num2
		// 	}
		// }
		// // getNum(5,10);
		// var receive = getNum(5,10);
		// console.log(receive);
		
		// 用函数求数组中的最大值
		// [12,2,,45,64,89,34,245]
		// function getMax(arr){
		// 	// var arr = [12,2,,45,64,89,34,245];   arr  相当于变量赋值
		//     var max=arr[0];
		//     for(var i = 1; i <= arr.length; i++){
		//         if(arr[i] > max){
		//             max = arr[i];
		//         }
		//     }
		//     return max;
		// 	// alert(123);
			
		// }
		// var a = getMax([12,2,,45,64,89,34,245]);
		// console.log(a)
		
		// return    终止函数
	
		
		// 	1、arguments是函数中一个默认的伪数组对象
		
		//     2. arguments 有什么用?
		//     arguments接收用户传递的实参信息
		//     没有接触arguments之前,通过形参接收实参信息的
		//     在函数中接收实参信息除了形参之外,还可以通过arguments来接收
		//     3.代码演示
		//     function fn() {
		//         //要求:
		//         // arguments固定写法,不能自定义
		//         // arguments就是一个伪数组
		//         console.log(arguments);
		//     }
		//     fn();
		//     //4.代码演示接收实参信息
		// function fn() {
		// //         // console.log(a);  //1
		// //         // console.log(b);   //2
		
		 // console.log(arguments);
		
		// //         // 得到具体的实参的值 1 和 2 通过arguments 如何获取?
		
		        // console.log(arguments[0]);  //1
		        // console.log(arguments[1]);   //2
		        // console.log(arguments[2]);   //4
		        // console.log(arguments[3]);   //7
		        // console.log(arguments[4]);   //9
		
		//         for(let i = 0; i < arguments.length; i++) {
		//             console.log(arguments[i]);
		//         }
		
		//     }
		
		// fn(1,2,4,7,9);
		//     如果函数中的参数个数不确定,则推荐使用arguments
		//     例如:
		//     求任意个数字中的最大值
		    // function getMax() {
		        // arguments
		        //假设第一个值是最大值
		        // var max = arguments[0];
		        //逐个比较
		        // for(var i = 1; i < arguments.length; i++) {
		//             if(arguments[i] > max) {
		//                 max = arguments[i];
		//             }
		//         }
		//         // console.log(max);
		// 		return max;
		//     }
		
		//     var a = getMax(1,2,3,456,789);
		// 	console.log(a);
		
		
		//     什么情况下推荐使用形参获取实参?
		//     如果函数的形参个数是确定的,则推荐使用形参
		//     function fn(a, b, c) {
		//         console.log(a);
		//         console.log(b);
		//         console.log(c);
		//     }
		//     fn(1, 2, 3);
		
		    
		//     log函数中内部也是通过arguments实现的
		//     console.log(1, 2, 3);
		//任意两数相乘
		// function getMult(num1 , num2){
		//     return num1 * num2;
		// }
		// alert(getMult(5,6));
		// function getMult(){
		// 	var num1 = prompt("请输入第一个数");
		// 	var num2 = prompt("请输入第二个数");
		// 	return num1 * num2;
		// }
		// alert(getMult());
		// 写一个函数，比对出三个不同的数判断出最大值，并弹出结果
		// var num1 = prompt('第一个数');
		// var num2 = prompt('第二个数');
		// var num3 = prompt('第三个数');
		// var max = 0;
		// function getMax(){
		    // var num1 = prompt('第一个数');
		    // var num2 = prompt('第二个数');
		    // var num3 = prompt('第三个数');
		    // max = 0;
		 //    num1 > num2 ? max = num1 : max = num2;
			// // max = 最大值
		 //    max > num3 ? max = max : max = num3;
		 //    return max;
		 // console.log(max);
		// return max;
		// }
		// console.log(max);
		// getMax()
		// console.log(max);
		// alert (getMax());
		// console.log(max);
		// 全局变量，局部变量 ，变量提升（局部变量变为全局变量，去掉关键字）
		// var a = 0
		// function fn(){
		// 	console.log(123);
		// 	// console.log(a)
		// 	a = 0;
		// }
		// fn();
		// console.log(a)
		
		// 1.利用函数封装翻转任意数组 reverse翻转
		// function reverse(arr){
		//     var arr1 = []
		//     for (var i=arr.length-1; i>=0; i--){
		//         arr1[arr1.length]=arr[i];
		//     }
		//     return arr1;
		// }
		// console.log(reverse([2,5,8,9]));
		// 2.封装函数判断闰年
		
		// function year(arr){
		//     if(arr % 4==0 && arr % 100 !=0 || arr % 400 == 0){
		//         alert("闰年")
		//     }else{
		//         alert('平年')
		//     }
		// 	return arr;
		// }
		// year(prompt("请输入年份"))
		// 3.用函数封装冒泡排序
		// function sort(arr){
		//     for (i=0; i<arr.length-1; i++){
		//         for (j=0; j<arr.length -i-1; j++){
		//             if(arr[j]>arr[j+1]){
		//                 var num = arr[j];
		//                 arr[j]=arr[j+1];
		//                 arr[j+1]=num;
		//             }
		//         }
		//     }
		//     return arr;
		// }
		// var arr1 = sort ([2,4,3,7,8,45]);
		// console.log(arr1)
	</script>
</html>